/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proliferacion.logica;

//Para el patron observador observable
import java.util.Observable;
import java.util.Observer;

import java.beans.PropertyChangeSupport;

/**
 *
 * @author Invitado
 */
public class Celula extends Observable {

    public Celula() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    public void crearCelula() {
        System.out.println("Me voy a crear.");

        setChanged();
        notifyObservers();
    }
    //sin la llamada a setChanged(), la invocación al update no se producirá, porque 
    //el programa piensa que el objeto no ha cambiado, por lo que no necesita notificar sobre ningún evento.
    
    public static final String PROP_NUMVERTICES = "PROP_NUMVERTICES"; //agregados automaticamente para el manejo de los atributos
    public static final String PROP_IDCELL = "PROP_IDCELL";
    public static final String PROP_LONLADOS = "PROP_LONLADOS";
    private int numVertices;
    private int idCell;
    private int[] lonLados;
    private final transient PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this);
    private Vertice[] vertices = new Vertice[12];

    public Celula(int v, int id) {
        numVertices = v;
        idCell = id;
        lonLados = new int[numVertices];
        for (int i = 0; i < numVertices; i++) {
            lonLados[i] = 1;
        }
    }

    /**
     * @return the numVertices
     */
    public int getNumVertices() {
        return numVertices;
    }

    /**
     * @param numVertices the numVertices to set
     */
    public void setNumVertices(int numVertices) {
        int oldNumVertices = numVertices;
        this.numVertices = numVertices;
        propertyChangeSupport.firePropertyChange(PROP_NUMVERTICES, oldNumVertices, numVertices);
    }

    /**
     * @return the idCell
     */
    public int getIdCell() {
        return idCell;
    }

    /**
     * @param idCell the idCell to set
     */
    public void setIdCell(int idCell) {
        int oldIdCell = idCell;
        this.idCell = idCell;
        propertyChangeSupport.firePropertyChange(PROP_IDCELL, oldIdCell, idCell);
    }

    /**
     * @return the lonLados
     */
    public int[] getLonLados() {
        return lonLados;
    }

    /**
     * @param lonLados the lonLados to set
     */
    public void setLonLados(int[] lonLados) {
        int[] oldLonLados = lonLados;
        this.lonLados = lonLados;
        propertyChangeSupport.firePropertyChange(PROP_LONLADOS, oldLonLados, lonLados);
    }
}
